package cn.topevery.garden.entity.dto;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * DTO
 *
 * @author code-generate
 * @date 2022-01-05
 */
@Data
@ApiModel(value = "PlanDTO", description = " DTO")
public class PlanDTO implements Serializable {
    /**
     * 自增id
     */
    private Integer id;

    /**
     * uuid标识
     */
    @ApiModelProperty(value = "uuid标识")
    private String planId;

    /**
     * 编码
     */
    @ApiModelProperty(value = "编码 ")
    private String code;

    /**
     * 名称
     */
    @ApiModelProperty(value = "名称 ")
    private String name;

    /**
     * 区域id
     */
    @ApiModelProperty(value = "区域id")
    private String mapId;

    /**
     * 计划类型code
     */
    @ApiModelProperty(value = "计划类型code")
    private String maintainType;

    /**
     * 计划类型名称
     */
    @ApiModelProperty(value = "计划类型名称 ")
    private String maintainTypeName;

    /**
     * 基础数据类型  1,绿地 2,古树名木
     */
    @ApiModelProperty(value = "基础数据类型  1,绿地 2,古树名木")
    private Integer objType;

    /**
     * 基础数据Id
     */
    @ApiModelProperty(value = "基础数据Id ")
    private String objId;

    /**
     * 基础数据名称
     */
    @ApiModelProperty(value = "基础数据名称 ")
    private String objName;

    /**
     * 总计划开始时间
     */
    @ApiModelProperty(value = "总计划开始时间 ")
    private LocalDate startDate;

    /**
     * 总计划结束时间
     */
    @ApiModelProperty(value = "总计划结束时间 ")
    private LocalDate endDate;

    /**
     * 养护企业guid
     */
    @ApiModelProperty(value = "养护企业guid ")
    private String companyId;

    /**
     * 养护企业简写名称
     */
    @ApiModelProperty(value = "养护企业简写名称")
    private String companyName;

    /**
     * 0 暂存 1 提交  2 执行中  3 完成
     */
    @ApiModelProperty(value = "0 暂存 1 提交  2 执行中  3 完成")
    private Integer state;

    /**
     * 计划内容
     */
    @ApiModelProperty(value = "计划内容")
    private String content;

    /**
     * 种类
     */
    @ApiModelProperty(value = "种类")
    private String kind;

    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private Integer number;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;

    /**
     * 子计划开始时间
     */
    @ApiModelProperty(value = "子计划开始时间")
    private LocalDate planStartDate;

    /**
     * 子计划结束时间
     */
    @ApiModelProperty(value = "子计划结束时间")
    private LocalDate planEndDate;

    /**
     * 执行用量
     */
    @ApiModelProperty(value = "执行用量")
    private Double execDosage;

    /**
     * 执行日期
     */
    @ApiModelProperty(value = "执行日期")
    private LocalDate execDate;

    /**
     * 执行说明
     */
    @ApiModelProperty(value = "执行说明")
    private String execDesc;

    /**
     * 子计划状态 1：待执行 2：已执行
     */
    @ApiModelProperty(value = "子计划状态 1：待执行 2：已执行")
    private Integer planState;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 修改人
     */
    @ApiModelProperty(value = " 修改人")
    private String dbUpdateId;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间 ")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime dbUpdateDate;

    @ApiModelProperty("任务下发类型 0：部门 1：人员")
    private Byte sendType;

    @ApiModelProperty("任务下发对象id")
    private String sendObj;

    @ApiModelProperty("任务下发对象")
    private String sendObjName;

}
